home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / kernel / sig / sigTypes.h < prev    next >
C/C++ Source or Header  |  1992-12-18  |  2KB  |  63 lines

  1. /*
  2.  * sig.h --
  3.  *
  4.  *     Data structures and procedure headers exported by the
  5.  *     the signal module.
  6.  *
  7.  * Copyright (C) 1985 Regents of the University of California
  8.  * All rights reserved.
  9.  *
  10.  *
  11.  * $Header: /cdrom/src/kernel/Cvsroot/kernel/sig/sigTypes.h,v 1.4 90/10/15 16:58:26 mendel Exp $ SPRITE (Berkeley)
  12.  */
  13.  
  14. /*
  15.  * This is because machTypes needs Sig_Context, and Sig_Context needs 
  16.  * machTypes.
  17.  */
  18.  
  19. #ifdef KERNEL
  20. #include <machTypes.h>
  21. #else
  22. #include <kernel/machTypes.h>
  23. #endif
  24.  
  25. #ifndef _SIGTYPES
  26. #define _SIGTYPES
  27.  
  28. #ifdef KERNEL
  29. #include <user/sig.h>
  30. #include <procTypes.h>
  31. #else
  32. #include <sig.h>
  33. #include <kernel/procTypes.h>
  34. #endif
  35.  
  36. /*
  37.  * The signal context that is used to restore the state after a signal.
  38.  */
  39. typedef struct {
  40.     int            oldHoldMask;    /* The signal hold mask that was in
  41.                      * existence before this signal
  42.                      * handler was called.  */
  43.     Mach_SigContext    machContext;    /* The machine dependent context
  44.                      * to restore the process from. */
  45. } Sig_Context;
  46.  
  47. /*
  48.  * Structure that user sees on stack when a signal is taken.
  49.  * Sig_Context+Sig_Stack must be double word aligned for the sun4.
  50.  * Thus there is 4 bytes of padding here.
  51.  */
  52. typedef struct {
  53.     int        sigNum;        /* The number of this signal. */
  54.     int        sigCode;        /* The code of this signal. */
  55.     Sig_Context    *contextPtr;    /* Pointer to structure used to restore the
  56.                  * state before the signal. */
  57.     int        sigAddr;    /* Address of fault. */
  58.     int        pad;        /* Explained above. */
  59. } Sig_Stack;
  60.  
  61. #endif /* _SIGTYPES */
  62.  
  63.